草庐IT

Android Activity 静默退出

全部标签

c# - 如何确定谁拥有我的应用程序退出时仍在运行的工作线程?

升级到VS2010后不久,我的应用程序无法正常关闭。如果我关闭应用程序然后在IDE中点击暂停,我会看到:问题是,没有上下文。调用堆栈只显示[外部代码],这不是很有帮助。这是我到目前为止为缩小问题范围所做的工作:删除了所有无关的插件以最小化启动的工作线程数在我创建工作线程(和委托(delegate)+BeginInvoke,因为我认为它们在调试器中无论如何都被标记为“工作线程”)的任何位置的代码中设置断点。没有人被击中。为所有线程设置IsBackground=true虽然我可以执行下一个蛮力步骤,即将我的代码回滚到这没有发生的点,然后查看所有更改日志,但这不是非常有效。鉴于调试器提供的信

c# - C# 退出时自动保存设置

在VB.NET中有一个“退出时自动保存设置”的选项,在C#中是否有等效的选项,或者是否需要编写以下代码?privatevoidfrmMain_FormClosing(objectsender,FormClosingEventArgse){Properties.Settings.Default.Save();} 最佳答案 您可以改用ApplicationExit。Application.ApplicationExit+=newEventHandler(Application_ApplicationExit);voidApplicati

c# - 防止 Excel 退出

我缺少Excel.Application.Quit或Excel.Application.BeforeQuit事件。有人知道模拟这些事件的解决方法吗?我通过COMInterop从C#WinForms应用程序访问Excel。给定一个Excel.Application对象,我如何:最好防止Excel退出?如果这不可能,我如何才能至少在Excel退出时注意到?请注意:因为我有一个对Excel.Application的COM引用,Excel进程不会退出当Excel被用户“退出”时。虽然这听起来很矛盾,但事实就是如此。“退出”是指用户点击窗口右上角的“退出”或“十字按钮”。窗口关闭,文件被卸载,加

c# - 由于线程退出或应用程序请求,I/O 操作已中止

我的应用程序用作银行服务器的客户端应用程序。该应用程序正在发送请求并从银行获得响应。此应用程序通常运行良好,但有时TheI/Ooperationhasbeenabortedbecauseofeitherathreadexitoranapplicationrequest错误代码为995。publicvoidOnDataReceived(IAsyncResultasyn){BLCommonFunctions.WriteLogger(0,"In:-OnDataReceived",refswReceivedLogWriter,strLogPath,0);try{SocketPackettheS

c# - 为什么在 main() 退出之前调用 Dispose()?

我的.net服务通过在Main()循环退出之前的finallyblock中调用resourceName.Dispose()来清理其所有非托管资源。我真的必须这样做吗?我认为我不能因为进程正在结束而泄漏任何资源的想法是否正确?Windows将关闭所有不再使用的句柄,对吗? 最佳答案 实现IDisposable的对象可以封装的资源类型没有限制。IDisposable对象封装的绝大部分资源会在进程关闭时被操作系统清理,但有些程序可能会使用操作系统不知道的资源。例如,需要底层数据库不支持的锁定模式的数据库应用程序可能会使用一个或多个表来跟踪

c# - 在退出程序之前等待 System.Threading.Timer 回调完成

我有一个List.每个计时器以可配置的时间间隔触发(默认10分钟)。所有调用相同的回调方法(具有不同的参数)。回调方法可能需要几秒钟才能完成其工作。当程序终止时,回调方法的执行似乎立即停止(我没看错吗?)。如何在退出程序之前优雅地等待任何当前正在执行的回调方法完成? 最佳答案 您可以使用WaitHandler参数处理所有计时器。仅当回调方法完成时才会向此处理程序发出信号(如规范所述:“在所有当前排队的回调完成之前,计时器不会被释放。”)voidWaitUntilCompleted(ListmyTimers){ListwaitHnd=

c# - 在 setter 中确定调用者——或静默设置属性

给定标准View模型实现,当属性更改时,是否有任何方法可以确定更改的发起者?换句话说,在下面的View模型中,我希望“PropertyChanged”事件的“sender”参数是调用Prop1setter的实际对象:publicclassViewModel:INotifyPropertyChanged{publicdoubleProp1{get{return_prop1;}set{if(_prop1==value)return;_prop1=value;//here,canIdeterminethesender?RaisePropertyChanged(propertyName:"Pr

c# - 您将如何简化进入和退出 ReaderWriterLock?

这对我来说似乎很吵。五行开销太多了。m_Lock.EnterReadLock()TryReturnm_List.CountFinallym_Lock.ExitReadLock()EndTry那么你会如何简化这个呢? 最佳答案 我也是这么想的,但是在C#中;-pusingSystem;usingSystem.Threading;classProgram{staticvoidMain(){ReaderWriterLockSlimsync=newReaderWriterLockSlim();using(sync.Read()){//etc

c# - 如何强制所有程序线程在程序关闭时退出?

如何确保在关闭主窗口后所有程序线程都中止? 最佳答案 您可以将“IsBackground”属性设置为true。CLR在应用程序退出时关闭所有后台线程。 关于c#-如何强制所有程序线程在程序关闭时退出?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7685909/

c# - 关于在 C# 中为应用程序编写后台/自动/静默下载程序/安装程序的问题

背景:我有一个主应用程序需要能够访问网络并下载与其关联的DLL文件(我们编写的文件,位于我们的服务器上)。它确实需要能够将这些DLL文件下载到“C:\ProgramFiles\”中的应用程序文件夹中。过去,我使用System.Net.WebClient从网上下载我想要的任何文件。问题过去,我在下载数据和保存到用户硬盘上的文件时遇到了很多麻烦。我收到很多用户的报告说这不起作用,这通常是因为程序中的用户权限问题。在程序用户权限出现问题的情况下,每个用户都可以转到Web上的确切文件位置,下载它,然后手动将其保存到正确的位置。我希望它能像我在这个系列中看到的所有其他程序一样工作(即Firefo